package br.com.pb.bymychef.persistencia.bean;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="tb_imagem")
@SequenceGenerator(name = "S_TB_IMAGEM", sequenceName = "S_TB_IMAGEM", initialValue = 0, allocationSize = 1)
@Inheritance(strategy=InheritanceType.JOINED) 
public class Imagem implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "S_TB_IMAGEM")
    @Column(name="idImagem")
    private Long idImagem;
    @Column(name="caminhoImagem", nullable=false, length=255)
    private String caminhoImagem;
    @Column(name="tpImagem", nullable=false)
    private int tpImagem;
    
    public Imagem() {
	
	
    }
    
    public Imagem(int tpImagem) {
	
	this.tpImagem = tpImagem;
	
    }
    
    public Imagem(String caminhoImagem, int tpImagem) {
	
	this.caminhoImagem = caminhoImagem;
	this.tpImagem = tpImagem;
	
    }
    

    public enum TpImagem {
	
	TP_IMAGEM_RECEITA(1), TP_IMAGEM_MODO_PREPARO(2);
	
	private int value;
	
	private TpImagem(int value) {
	    
	    this.value = value;
	    
	}

	public int getValue() {
	    return value;
	}
	
	public String getValueString() {
	    return value+"";
	}

    }
    
    public void setIdImagem(Long idImagem) {
        this.idImagem = idImagem;
    }

    public Long getIdImagem() {
        return idImagem;
    }

    public String getCaminhoImagem() {
        return caminhoImagem;
    }
    
    public void setCaminhoImagem(String caminhoImagem) {
	this.caminhoImagem = caminhoImagem;
    }
    
    public int getTpImagem() {
        return tpImagem;
    }

    public void setTpImagem(int tpImagem) {
        this.tpImagem = tpImagem;
    }

    @Override
    public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result
		+ ((idImagem == null) ? 0 : idImagem.hashCode());
	return result;
    }
    
    @Override
    public boolean equals(Object obj) {
	if (this == obj)
	    return true;
	if (obj == null)
	    return false;
	if (getClass() != obj.getClass())
	    return false;
	Imagem other = (Imagem) obj;
	if (idImagem == null) {
	    if (other.idImagem != null)
		return false;
	} else if (!idImagem.equals(other.idImagem))
	    return false;
	return true;
    }
    
    
}
